package com.shujia.day16;

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.Arrays;

/*
    字符流【转换流】：字节流 + 编码表

    编码：加密
    解码：解密

    字符流：
        字符输入流：
            Reader
        字符输出流：
            Writer【抽象类】
                - OutputStreamWriter【具体实现子类】

    OutputStreamWriter：
        构造方法：
            OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。
            OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用命名字符集的OutputStreamWriter。
        成员方法：
            public void write(int c)
            public void write(char[] cbuf)
            public void write(char[] cbuf,int off,int len)
            public void write(String str)
            public void write(String str,int off,int len)

 */
public class OutputStreamWriterDemo1 {
    public static void main(String[] args) throws Exception{
//        String s1 = "今天下午放假，不上课！";
////        byte[] bytes = s1.getBytes();
//        byte[] bytes = s1.getBytes("GBK");
//        System.out.println(Arrays.toString(bytes));
//
//        String s = new String(bytes,"GBK");
//        System.out.println(s);

        // 创建OutputStreamWriter(OutputStream out)对象
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("java/src/com/shujia/day16/a3.txt"),"GBK");

        // public void write(int c) 一次写一个字符
//        osw.write(97);
//        osw.flush();

        //public void write(char[] cbuf) 一次写一个字符数组
//        char[] chars = {'我','爱','数','加'};
//        osw.write(chars);

        //public void write(char[] cbuf,int off,int len) 一次写字符数组的一部分
//        osw.write(chars,1,3);
//        osw.flush();

        //public void write(String str) 直接写一个字符串
//        osw.write("李刚是32期最帅的男人！");
//        osw.flush();

        //public void write(String str,int off,int len) 写字符串的一部分
//        osw.write("李刚是32期最帅的男人！",6,2);

        osw.write("中国");
        osw.flush();


        //释放资源
        osw.close();

    }
}
